/*
* ============================================================================
*  Name        : example_007.h
*  Part of     : Finite state machine examples
*  Description : Class definition
*  Version     : %version: %
*  
*
* ============================================================================
*/
#if !defined(  __sm_example_007_h__ )
#define __sm_example_007_h__

#include <sea_statemachine>

using namespace sea;

/**
 * @file example_007.h
 * @brief Example of message exchange between two state machines
 *
 * @ingroup StateMachineExamples
 *
 */
namespace sea_examples
{
    /**
     * @class Friend
     * @brief \b Examples: Demonstrates inter-state machine communication
     *
     * @ingroup StateMachineExamples
     */
    class Friend : public StateMachine
    {
    public:
        Friend( ) : StateMachine( STATEMACHINE_NAME ){ }

        EVENT_EXT( Friend, Ev_Ext_Poke );
    private:
        ACT( Friend, poke_back );
        void some_other_func( );
    };

    void launch_example_007( );
}

#endif
